package com.wicket.okrframework.web.contorller;

import com.github.pagehelper.Page;
import com.wicket.okrcomponent.common.util.CommonFunctionHelper;
import com.wicket.okrframework.biz.service.TagService;
import com.wicket.okrframework.biz.service.dto.req.AddTagReqDto;
import com.wicket.okrframework.biz.service.dto.req.QueryTagDetailReqDto;
import com.wicket.okrframework.biz.service.dto.req.QueryTagListReqDto;
import com.wicket.okrframework.biz.service.dto.req.UpdateTagReqDto;
import com.wicket.okrframework.biz.service.dto.res.AddTagRespDto;
import com.wicket.okrframework.biz.service.dto.res.QueryTagDetailRespDto;
import com.wicket.okrframework.biz.service.dto.res.QueryTagListRespDto;
import com.wicket.okrframework.biz.service.dto.res.UpdateTagRespDto;
import com.wicket.okrframework.common.ro.OkrResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrframework.biz.service.dto.res.AddObjectTagComRespDto;
import com.wicket.okrframework.biz.service.dto.req.AddObjectTagComReqDto;
import com.wicket.okrframework.biz.service.dto.res.UpdateObjectTagComRespDto;
import com.wicket.okrframework.biz.service.dto.req.UpdateObjectTagComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/base/tag/")
public class TagController {

    @Autowired
    TagService tagService;

    /**
   * D1-1查标签列表
   */
    @PostMapping("queryTagList")
    public OkrResult<QueryTagListRespDto> queryTagList(@RequestBody @Validated QueryTagListReqDto reqDTO){
    Page<?> page = CommonFunctionHelper.startPage(reqDTO.getPageNum(),reqDTO.getPageSize());

        QueryTagListRespDto retData = tagService.queryTagList(reqDTO);

        retData.setPageNum(page.getPageNum());
        retData.setPageSize(page.getPageSize());
        retData.setTotalNum(page.getTotal());
        return OkrResult.success(retData);
    
    }

    /**
   * D1-1修改标签
   */
    @PostMapping("updateTag")
    public OkrResult<UpdateTagRespDto> updateTag(@RequestBody @Validated UpdateTagReqDto reqDTO){
    return OkrResult.success(tagService.updateTag(reqDTO));
    }

    /**
   * D1-1新增标签
   */
    @PostMapping("addTag")
    public OkrResult<AddTagRespDto> addTag(@RequestBody @Validated AddTagReqDto reqDTO){
    return OkrResult.success(tagService.addTag(reqDTO));
    }

    /**
   * D1-1查询标签详情
   */
    @PostMapping("queryTagDetail")
    public OkrResult<QueryTagDetailRespDto> queryTagDetail(@RequestBody @Validated QueryTagDetailReqDto reqDTO){
    return OkrResult.success(tagService.queryTagDetail(reqDTO));
    }
/**
   * D1-1新增对象标签(公共)
   */
    @PostMapping("addObjectTagCom")
    public OkrResult<AddObjectTagComRespDto> addObjectTagCom(@RequestBody @Validated AddObjectTagComReqDto reqDTO){
    return OkrResult.success(tagService.addObjectTagCom(reqDTO));
    }
/**
   * D1-1修改对象标签(公共)
   */
    @PostMapping("updateObjectTagCom")
    public OkrResult<UpdateObjectTagComRespDto> updateObjectTagCom(@RequestBody @Validated UpdateObjectTagComReqDto reqDTO){
    return OkrResult.success(tagService.updateObjectTagCom(reqDTO));
    }
}
